/*
 * Bloque.h
 *
 */

#ifndef BLOQUE_H_
#define BLOQUE_H_

#include "Registro.h"

class Bloque {
public:
	Bloque(unsigned int tamBloque);
	Bloque();

	virtual ~Bloque();

	/*
	 * Agrega un registro al final del bloque usando un caracter separador
	 * Si el bloque no tiene lugar suficiente para almacenar el registro se
	 * devuelve cod=-1
	 *
	 * */
	int agregarRegistro(Registro registro);


	/*Se completa el bloque con ceros
	 *Se puede utilizar antes de escribir el bloque en el archivo para
	 *que no quede con basura despues de sus registros.
	 */
	void completarConCeros ();

	unsigned int obtenerBytesLibres ();

	string bufferBloque;
	unsigned int tamBloque;


	/*LE PASO LA POSICION Y ME TIENE QUE DEVOLVER UN PUNTERO AL REGISTRO QUE HAY AHI
	 * */
	Registro* obtenerRegistro(unsigned int pos);

	/*DEVUELVE LA CANTIDAD DE REGISTROS
	 * */
	unsigned int cantidadRegistros();
};

#endif /* BLOQUE_H_ */
